﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NGourd.Core.Features
{
    public class Feature : IFluentApi
    {
        private readonly IList<Scenario> _scenarios = new List<Scenario>();

        internal IEnumerable<Scenario> Scenarios
        {
            get
            {
                return _scenarios;
            }
        }

        public IScenario Scenario(string name)
        {
            var scenario = new Scenario(name);
            _scenarios.Add(scenario);
            return scenario;
        }

        private string name;

        public Feature()
        {
            name = GetType().Name;
        }

        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        internal void Merge(Feature feature)
        {
            foreach (var scenario in feature.Scenarios)
            {
                _scenarios.Add(scenario);
            }
        }
    }
}
